#ifndef INCLUI_TORRE
#define INCLUI_TORRE

#include <Config.h>
#include <iostream>
#include <cmath>
#include <Gerenciador3D.h>
#include <Projetil.h>
#include <Inimigo.h>
#include <Wave.h>
#include <ctime>
#include <Som.h>

using namespace td::modelos;
using namespace td::projetil;
using namespace td::som;

class Torre{

private:

	Gerenciador3D *modelo;
	vector<Projetil*> *projeteis;
	ISceneManager *minhaCena;
	int tiroAtual;
	unsigned int raio, danoAtaque, nivel;	
	float velocidaDeAtaque;
	virtual void atacarInimigos(Inimigo *inimigo, ISoundEngine *motorSom);
	int temporizador;
	ISoundEngine *motorSom;
	Som *somTiro;

public:

	Torre(void);
	Torre(ISoundEngine *motorSom, char* modelo, char* textura = 0, bool influenciaLuz = true, ISceneManager *cena = NULL,
		  int raio = 20, int velocidaDeDeAtaque = 3, int danoDoAtaque = 5,
		  int quantidadeDeProjeteis = 10, int velocidadeDeslocamentoProjeteis = 100);
	~Torre(void);
	Gerenciador3D *getModelo(void);
	void autonomiaTorre(Wave *wave);
	vector<Projetil*>* getProjeteis(void);
};

#endif